/*******************************************************************************
* Copyright (c) 2009 Remy Chi Jian Suen and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
* IBM - ongoing development
******************************************************************************/
package org.eclipse.ui.tests.fieldassist;
import org.eclipse.jface.tests.fieldassist.AbstractFieldAssistTestCase;
import org.eclipse.swt.SWT;
import org.eclipse.ui.IWorkbenchCommandConstants;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.IHandlerService;
public abstract class AbstractContentAssistCommandAdapterTest extends
AbstractFieldAssistTestCase {
protected void executeContentAssistHandler() throws Exception {
// retrieve the content assist handler and run it
IHandlerService handlerService = PlatformUI
.getWorkbench().getService(IHandlerService.class);
handlerService.executeCommand(
IWorkbenchCommandConstants.EDIT_CONTENT_ASSIST, null);
}
public void testHandlerPromptsPopup() throws Exception {
getFieldAssistWindow().open();
sendFocusInToControl();
executeContentAssistHandler();
assertTwoShellsUp();
}
/**
* Tests that a ContentAssistCommandAdapter that has no autoactivation
* characters set will not have its proposals disappear when a user invokes
* content assist and then subsequently inserts a character that matches the
* first character of a suggested proposal.
* <p>
* <ol>
* <li>User invokes content assist</li>
* <li>"one", "two", "three"...shows up</li>
* <li>User hits the 'O' key</li>
* <li>The list shows up (the bug was reporting that the list disappeared)</li>
* </ol>
*/
public void testBug271339EmptyAutoActivationCharacters() throws Exception {
getFieldAssistWindow().open();
sendFocusInToControl();
executeContentAssistHandler();
assertTwoShellsUp();
sendKeyDownToControl('o');
assertTwoShellsUp();
}
/**
* Tests that a ContentAssistCommandAdapter that has no autoactivation
* characters set will not have its proposals appear when a user inserts a
* character that matches the first character of a suggested proposal.
* <p>
* <ol>
* <li>User hits the 'O' key</li>
* <li>While "one" matches, the proposals should not appear as no
* autoactivation characters have been set</li>
* </ol>
*/
public void testBug271339EmptyAutoActivationCharacters2() throws Exception {
getFieldAssistWindow().open();
sendFocusInToControl();
sendKeyDownToControl('o');
assertOneShellUp();
}
/**
* Tests that a ContentAssistCommandAdapter that has no autoactivation
* characters set will stay open if the user backspaces over a narrowing
* proposal character.
* <p>
* <ol>
* <li>User invokes content assist</li>
* <li>"one", "two", "three"...shows up</li>
* <li>User hits the 'O' key</li>
* <li>The list narrows</li>
* <li>user hits backspace</li>
* <li>the popup should remain open</li>
* </ol>
*/
public void testBug271339EmptyAutoActivationCharacters3() throws Exception {
getFieldAssistWindow().open();
sendFocusInToControl();
executeContentAssistHandler();
assertTwoShellsUp();
sendKeyDownToControl('o');
assertTwoShellsUp();
sendKeyDownToControl(SWT.BS);
assertTwoShellsUp();
}
}